home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / vicdual.c < prev    next >
C/C++ Source or Header  |  2000-05-01  |  68KB  |  1,703 lines

  1. /***************************************************************************
  2.  
  3. VIC Dual Game board
  4.  
  5. Seems like there are 2 types of boards. One uses an 8080A and 2 control PROMs
  6. and the other is a Z80 with 1 control PROM.
  7.  
  8.  
  9. 0000-3fff ROM
  10. 4000-7fff ROM mirror image (used in most games)
  11.  
  12. the following have mirror images throughout the address space
  13. e000-e3ff Video RAM + work RAM
  14. e400-e7ff RAM
  15. e800-efff Character generator RAM
  16.  
  17. I/O ports:
  18.  
  19. The memory map is the same for many games, but the I/O ports change. The
  20. following ones are for Carnival, and apply to many other games as well.
  21.  
  22. read:
  23. 00        IN0
  24.           bit 0 = connector
  25.           bit 1 = connector
  26.           bit 2 = dsw
  27.           bit 3 = dsw
  28.           bit 4 = connector
  29.           bit 5 = connector
  30.           bit 6 = seems unused
  31.           bit 7 = seems unused
  32.  
  33. 01        IN1
  34.           bit 0 = connector
  35.           bit 1 = connector
  36.           bit 2 = dsw
  37.           bit 3 = vblank
  38.           bit 4 = connector
  39.           bit 5 = connector
  40.           bit 6 = seems unused
  41.           bit 7 = seems unused
  42.  
  43. 02        IN2
  44.           bit 0 = connector
  45.           bit 1 = connector
  46.           bit 2 = dsw
  47.           bit 3 = timer? is this used?
  48.           bit 4 = connector
  49.           bit 5 = connector
  50.           bit 6 = seems unused
  51.           bit 7 = seems unused
  52.  
  53. 03        IN3
  54.           bit 0 = connector
  55.           bit 1 = connector
  56.           bit 2 = dsw
  57.           bit 3 = COIN (must reset the CPU to make the game acknowledge it)
  58.           bit 4 = connector
  59.           bit 5 = connector
  60.           bit 6 = seems unused
  61.           bit 7 = seems unused
  62.  
  63. write:
  64.     (ports 1 and 2: see definitions in sound driver)
  65.  
  66. 08        ?
  67.  
  68. 40        palette bank
  69.  
  70. ***************************************************************************/
  71.  
  72. #include "driver.h"
  73. #include "vidhrdw/generic.h"
  74. #include "cpu/i8039/i8039.h"
  75.  
  76.  
  77.  
  78. #define    PSG_CLOCK_CARNIVAL    ( 3579545 / 3 )    /* Hz */
  79.  
  80.  
  81. static unsigned char *vicdual_ram;
  82.  
  83. extern unsigned char *vicdual_characterram;
  84. void vicdual_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  85. WRITE_HANDLER( vicdual_characterram_w );
  86. READ_HANDLER( vicdual_characterram_r );
  87. WRITE_HANDLER( vicdual_palette_bank_w );
  88. void vicdual_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  89.  
  90. /* Carnival sound handlers */
  91. extern const char *carnival_sample_names[];
  92. WRITE_HANDLER( carnival_sh_port1_w );
  93. WRITE_HANDLER( carnival_sh_port2_w );
  94. READ_HANDLER( carnival_music_port_t1_r );
  95. WRITE_HANDLER( carnival_music_port_1_w );
  96. WRITE_HANDLER( carnival_music_port_2_w );
  97.  
  98. /* Depth Charge sound handlers */
  99. extern const char *depthch_sample_names[];
  100. WRITE_HANDLER( depthch_sh_port1_w );
  101.  
  102. /* Invinco sound handlers */
  103. extern const char *invinco_sample_names[];
  104. WRITE_HANDLER( invinco_sh_port2_w );
  105.  
  106. /* Pulsar sound handlers */
  107. extern const char *pulsar_sample_names[];
  108. WRITE_HANDLER( pulsar_sh_port1_w );
  109. WRITE_HANDLER( pulsar_sh_port2_w );
  110.  
  111.  
  112. static int protection_data;
  113.  
  114. static WRITE_HANDLER( samurai_protection_w )
  115. {
  116.     protection_data = data;
  117. }
  118.  
  119. static READ_HANDLER( samurai_input_r )
  120. {
  121.     int answer = 0;
  122.  
  123.     if (protection_data == 0xab) answer = 0x02;
  124.     else if (protection_data == 0x1d) answer = 0x0c;
  125.  
  126.     return (readinputport(1 + offset) & 0xfd) | ((answer >> offset) & 0x02);
  127. }
  128.  
  129.  
  130. static WRITE_HANDLER( vicdual_ram_w )
  131. {
  132.     vicdual_ram[offset] = data;
  133. }
  134.  
  135. static READ_HANDLER( vicdual_ram_r )
  136. {
  137.     return vicdual_ram[offset];
  138. }
  139.  
  140.  
  141. static READ_HANDLER( depthch_input_port_1_r )
  142. {
  143.     /* bit 0 is 64V according to the schematics */
  144.     return (input_port_1_r(0) & 0xfe) | ((cpu_getscanline() >> 6) & 0x01);
  145. }
  146.  
  147.  
  148. static struct MemoryReadAddress vicdual_readmem[] =
  149. {
  150.     { 0x0000, 0x7fff, MRA_ROM },
  151.     { 0x8000, 0x83ff, videoram_r },
  152.     { 0x8400, 0x87ff, vicdual_ram_r },
  153.     { 0x8800, 0x8fff, vicdual_characterram_r },
  154.     { 0x9000, 0x93ff, videoram_r },
  155.     { 0x9400, 0x97ff, vicdual_ram_r },
  156.     { 0x9800, 0x9fff, vicdual_characterram_r },
  157.     { 0xa000, 0xa3ff, videoram_r },
  158.     { 0xa400, 0xa7ff, vicdual_ram_r },
  159.     { 0xa800, 0xafff, vicdual_characterram_r },
  160.     { 0xb000, 0xb3ff, videoram_r },
  161.     { 0xb400, 0xb7ff, vicdual_ram_r },
  162.     { 0xb800, 0xbfff, vicdual_characterram_r },
  163.     { 0xc000, 0xc3ff, videoram_r },
  164.     { 0xc400, 0xc7ff, vicdual_ram_r },
  165.     { 0xc800, 0xcfff, vicdual_characterram_r },
  166.     { 0xd000, 0xd3ff, videoram_r },
  167.     { 0xd400, 0xd7ff, vicdual_ram_r },
  168.     { 0xd800, 0xdfff, vicdual_characterram_r },
  169.     { 0xe000, 0xe3ff, videoram_r },
  170.     { 0xe400, 0xe7ff, vicdual_ram_r },
  171.     { 0xe800, 0xefff, vicdual_characterram_r },
  172.     { 0xf000, 0xf3ff, videoram_r },
  173.     { 0xf400, 0xf7ff, vicdual_ram_r },
  174.     { 0xf800, 0xffff, vicdual_characterram_r },
  175.     { -1 }  /* end of table */
  176. };
  177.  
  178. static struct MemoryWriteAddress vicdual_writemem[] =
  179. {
  180.     { 0x0000, 0x7fff, MWA_ROM },
  181.     { 0x8000, 0x83ff, videoram_w, &videoram, &videoram_size },
  182.     { 0x8400, 0x87ff, vicdual_ram_w, &vicdual_ram },
  183.     { 0x8800, 0x8fff, vicdual_characterram_w, &vicdual_characterram },
  184.     { 0x9000, 0x93ff, videoram_w, &videoram, &videoram_size },
  185.     { 0x9400, 0x97ff, vicdual_ram_w, &vicdual_ram },
  186.     { 0x9800, 0x9fff, vicdual_characterram_w, &vicdual_characterram},
  187.     { 0xa000, 0xa3ff, videoram_w },
  188.     { 0xa400, 0xa7ff, vicdual_ram_w },
  189.     { 0xa800, 0xafff, vicdual_characterram_w },
  190.     { 0xb000, 0xb3ff, videoram_w },
  191.     { 0xb400, 0xb7ff, vicdual_ram_w },
  192.     { 0xb800, 0xbfff, vicdual_characterram_w },
  193.     { 0xc000, 0xc3ff, videoram_w },
  194.     { 0xc400, 0xc7ff, vicdual_ram_w },
  195.     { 0xc800, 0xcfff, vicdual_characterram_w },
  196.     { 0xd000, 0xd3ff, videoram_w },
  197.     { 0xd400, 0xd7ff, vicdual_ram_w },
  198.     { 0xd800, 0xdfff, vicdual_characterram_w },
  199.     { 0xe000, 0xe3ff, videoram_w },
  200.     { 0xe400, 0xe7ff, vicdual_ram_w },
  201.     { 0xe800, 0xefff, vicdual_characterram_w },
  202.     { 0xf000, 0xf3ff, videoram_w },
  203.     { 0xf400, 0xf7ff, vicdual_ram_w },
  204.     { 0xf800, 0xffff, vicdual_characterram_w },
  205.     { -1 }  /* end of table */
  206. };
  207.  
  208.  
  209. /* Safari has extra RAM */
  210. static struct MemoryReadAddress safari_readmem[] =
  211. {
  212.     { 0x0000, 0x7fff, MRA_ROM },
  213.     { 0x8000, 0x87ff, MRA_RAM },
  214.     { 0xe000, 0xe3ff, videoram_r },
  215.     { 0xe400, 0xe7ff, vicdual_ram_r },
  216.     { 0xe800, 0xefff, vicdual_characterram_r },
  217.     { -1 }  /* end of table */
  218. };
  219.  
  220. static struct MemoryWriteAddress safari_writemem[] =
  221. {
  222.     { 0x0000, 0x7fff, MWA_ROM },
  223.     { 0x8000, 0x87ff, MWA_RAM },
  224.     { 0xe000, 0xe3ff, videoram_w, &videoram, &videoram_size },
  225.     { 0xe400, 0xe7ff, vicdual_ram_w, &vicdual_ram },
  226.     { 0xe800, 0xefff, vicdual_characterram_w, &vicdual_characterram },
  227.     { -1 }  /* end of table */
  228. };
  229.  
  230.  
  231. static struct IOReadPort readport_2ports[] =
  232. {
  233.     { 0x01, 0x01, input_port_0_r },
  234.     { 0x08, 0x08, input_port_1_r },
  235.     { -1 }  /* end of table */
  236. };
  237.  
  238. static struct IOReadPort readport_3ports[] =
  239. {
  240.     { 0x01, 0x01, input_port_0_r },
  241.     { 0x04, 0x04, input_port_1_r },
  242.     { 0x08, 0x08, input_port_2_r },
  243.     { -1 }  /* end of table */
  244. };
  245.  
  246. static struct IOReadPort readport_4ports[] =
  247. {
  248.     { 0x00, 0x00, input_port_0_r },
  249.     { 0x01, 0x01, input_port_1_r },
  250.     { 0x02, 0x02, input_port_2_r },
  251.     { 0x03, 0x03, input_port_3_r },
  252.     { -1 }  /* end of table */
  253. };
  254.  
  255. static struct IOReadPort readport_safari[] =
  256. {
  257.     { 0x03, 0x03, input_port_0_r },
  258.     { 0x08, 0x08, input_port_1_r },
  259.     { -1 }  /* end of table */
  260. };
  261.  
  262.  
  263. static struct IOWritePort writeport[] =
  264. {
  265.     { 0x40, 0x40, vicdual_palette_bank_w },
  266.     { -1 }  /* end of table */
  267. };
  268.  
  269.  
  270. static struct MemoryReadAddress i8039_readmem[] =
  271. {
  272.     { 0x0000, 0x07ff, MRA_ROM },
  273.     { -1 }    /* end of table */
  274. };
  275.  
  276. static struct MemoryWriteAddress i8039_writemem[] =
  277. {
  278.     { 0x0000, 0x07ff, MWA_ROM },
  279.     { -1 }    /* end of table */
  280. };
  281.  
  282.  
  283. static struct IOReadPort i8039_readport[] =
  284. {
  285.     { I8039_t1, I8039_t1, carnival_music_port_t1_r },
  286.     { -1 }
  287. };
  288.  
  289. static struct IOWritePort i8039_writeport[] =
  290. {
  291.     { I8039_p1, I8039_p1, carnival_music_port_1_w },
  292.     { I8039_p2, I8039_p2, carnival_music_port_2_w },
  293.     { -1 }    /* end of table */
  294. };
  295.  
  296.  
  297.  
  298. INPUT_PORTS_START( depthch )
  299.     PORT_START    /* IN0 */
  300.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
  301.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
  302.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  303.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  304.     PORT_DIPNAME (0x30, 0x30, DEF_STR( Coinage ) )
  305.     PORT_DIPSETTING (   0x00, DEF_STR( 4C_1C ) )
  306.     PORT_DIPSETTING (   0x10, DEF_STR( 3C_1C ) )
  307.     PORT_DIPSETTING (   0x20, DEF_STR( 2C_1C ) )
  308.     PORT_DIPSETTING (   0x30, DEF_STR( 1C_1C ) )
  309.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  310.  
  311.     PORT_START    /* IN1 */
  312.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )  /* 64V */
  313.     PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  314.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  315. INPUT_PORTS_END
  316.  
  317. INPUT_PORTS_START( safari )
  318.     PORT_START    /* IN0 */
  319.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
  320.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  321.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  322.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  323.     PORT_BITX(0x10, IP_ACTIVE_LOW, IPT_BUTTON2, "Aim Up", KEYCODE_A, IP_JOY_DEFAULT )
  324.     PORT_BITX(0x20, IP_ACTIVE_LOW, IPT_BUTTON3, "Aim Down", KEYCODE_Z, IP_JOY_DEFAULT )
  325.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  326.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  327.  
  328.     PORT_START    /* IN1 */
  329.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  330.     PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  331.     PORT_DIPNAME (0x30, 0x30, DEF_STR( Coinage ) )
  332.     PORT_DIPSETTING (   0x00, DEF_STR( 4C_1C ) )
  333.     PORT_DIPSETTING (   0x10, DEF_STR( 3C_1C ) )
  334.     PORT_DIPSETTING (   0x20, DEF_STR( 2C_1C ) )
  335.     PORT_DIPSETTING (   0x30, DEF_STR( 1C_1C ) )
  336.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  337.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  338. INPUT_PORTS_END
  339.  
  340. INPUT_PORTS_START( frogs )
  341.     PORT_START    /* IN0 */
  342.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  343.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
  344.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  345.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
  346.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  347.     PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  348.     PORT_DIPNAME( 0x10, 0x10, "Allow Free Game" )
  349.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  350.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  351.     PORT_DIPNAME( 0x20, 0x20, "Time" )
  352.     PORT_DIPSETTING(    0x00, "60" )
  353.     PORT_DIPSETTING(    0x20, "90" )
  354.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) )
  355.     PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
  356.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
  357.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  358.  
  359.     PORT_START    /* IN1 */
  360.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  361.     PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  362.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  363. INPUT_PORTS_END
  364.  
  365. INPUT_PORTS_START( sspaceat )
  366.     PORT_START    /* IN0 */
  367.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  368.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
  369.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
  370.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
  371.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  372.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_COCKTAIL )
  373.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY | IPF_COCKTAIL )
  374.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  375.  
  376.     PORT_START    /* IN1 */
  377.     PORT_DIPNAME( 0x01, 0x00, "Bonus Life After 1st Stage" )
  378.     PORT_DIPSETTING(    0x01, DEF_STR( No ) )
  379.     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
  380.     PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Lives ) )
  381.     PORT_DIPSETTING(    0x0e, "3" )
  382.     PORT_DIPSETTING(    0x0c, "4" )
  383.     PORT_DIPSETTING(    0x0a, "5" )
  384.     PORT_DIPSETTING(    0x06, "6" )
  385. /* the following are duplicates
  386.     PORT_DIPSETTING(    0x00, "4" )
  387.     PORT_DIPSETTING(    0x04, "4" )
  388.     PORT_DIPSETTING(    0x08, "4" )
  389.     PORT_DIPSETTING(    0x02, "5" ) */
  390.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) )
  391.     PORT_DIPSETTING(    0x00, "10000" )
  392.     PORT_DIPSETTING(    0x10, "15000" )
  393.     PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  394.     PORT_DIPNAME( 0x80, 0x00, "Credits Display" )
  395.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  396.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  397.  
  398.     PORT_START    /* IN2 */
  399.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  400.     PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  401.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  402. INPUT_PORTS_END
  403.  
  404. INPUT_PORTS_START( headon )
  405.     PORT_START    /* IN0 */
  406.     PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
  407.     PORT_DIPSETTING(    0x00, "3" )
  408.     PORT_DIPSETTING(    0x01, "4" )
  409.     PORT_DIPSETTING(    0x02, "5" )
  410.     PORT_DIPSETTING(    0x03, "6" )
  411.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
  412.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  413.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  414.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
  415.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  416.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  417.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  418.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  419.  
  420.     PORT_START    /* IN1 */
  421.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  422.     PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  423.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  424. INPUT_PORTS_END
  425.  
  426. INPUT_PORTS_START( headon2 )
  427.     PORT_START    /* IN0 */
  428.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  429.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  430.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  431.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
  432.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  433.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  434.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  435.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  436.  
  437.     PORT_START    /* IN1 */
  438.     PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  439.     PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
  440.     PORT_DIPSETTING(    0x18, "4" )
  441.     PORT_DIPSETTING(    0x10, "5" )
  442.     PORT_DIPSETTING(    0x00, "6" )
  443. /*    PORT_DIPSETTING(    0x08, "5" )*/
  444.     PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  445.  
  446.     PORT_START    /* IN2 */
  447.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  448.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
  449.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  450.     PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  451.     PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  452.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  453. INPUT_PORTS_END
  454.  
  455. INPUT_PORTS_START( invho2 )
  456.     PORT_START    /* IN0 */
  457.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  458.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  459.     PORT_DIPNAME( 0x04, 0x04, "Head On Lives (1/2)" )
  460.     PORT_DIPSETTING(    0x04, "+0" )
  461.     PORT_DIPSETTING(    0x00, "+1" )
  462.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  463.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  464.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  465.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  466.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  467.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  468.  
  469.     PORT_START    /* IN1 */
  470.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  471.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  472.     PORT_DIPNAME( 0x04, 0x00, "Head On Lives (2/2)" )
  473.     PORT_DIPSETTING(    0x04, "+0" )
  474.     PORT_DIPSETTING(    0x00, "+1" )
  475.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  476.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  477.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  478.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  479.  
  480.     PORT_START    /* IN2 */
  481.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  482.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  483.     PORT_DIPNAME( 0x04, 0x00, "Invinco Lives" )
  484.     PORT_DIPSETTING(    0x00, "5" )
  485.     PORT_DIPSETTING(    0x04, "6" )
  486.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  487.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  488.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  489.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )    /* probably unused */
  490.  
  491.     PORT_START    /* IN3 */
  492.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  493.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  494.     /* There's probably a bug in the code: this would likely be the second */
  495.     /* bit of the Invinco Lives setting, but the game reads bit 3 instead */
  496.     /* of bit 2. */
  497.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  498.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  499.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  500.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  501.     PORT_BITX(0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_TOGGLE, "Game Select", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  502.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  503.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  504. INPUT_PORTS_END
  505.  
  506. INPUT_PORTS_START( samurai )
  507.     PORT_START    /* IN0 */
  508.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  509.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  510.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
  511.     PORT_DIPSETTING(    0x04, "3" )
  512.     PORT_DIPSETTING(    0x00, "4" )
  513.     PORT_BITX(    0x08, 0x08, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
  514.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  515.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  516.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  517.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  518.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  519.  
  520.     PORT_START    /* IN1 */
  521.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  522.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection, see samurai_input_r() */
  523.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */
  524.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  525.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  526.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK ) /* seems to be on port 2 instead */
  527.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  528.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  529.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  530.  
  531.     PORT_START    /* IN2 */
  532.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  533.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection, see samurai_input_r() */
  534.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  535.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  536.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  537.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK ) /* either vblank, or a timer. In the */
  538.                                             /* Carnival schematics, it's a timer. */
  539. //    PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* timer */
  540.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  541.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  542.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  543.  
  544.     PORT_START    /* IN3 */
  545.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  546.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection, see samurai_input_r() */
  547.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  548.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  549.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  550.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  551.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  552.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  553.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  554. INPUT_PORTS_END
  555.  
  556. INPUT_PORTS_START( invinco )
  557.     PORT_START    /* IN0 */
  558.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  559.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  560.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  561.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
  562.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  563.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  564.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  565.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  566.  
  567.     PORT_START    /* IN1 */
  568.     PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
  569.     PORT_DIPSETTING(    0x00, "3" )
  570.     PORT_DIPSETTING(    0x01, "4" )
  571.     PORT_DIPSETTING(    0x02, "5" )
  572.     PORT_DIPSETTING(    0x03, "6" )
  573.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  574.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  575.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  576.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  577.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  578.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  579.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
  580.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  581.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  582.     PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  583.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
  584.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  585.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  586.  
  587.     PORT_START    /* IN2 */
  588.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  589.     PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  590.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  591. INPUT_PORTS_END
  592.  
  593. INPUT_PORTS_START( invds )
  594.     PORT_START    /* IN0 */
  595.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  596.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  597.     PORT_DIPNAME( 0x04, 0x00, "Invinco Lives (1/2)" )
  598.     PORT_DIPSETTING(    0x00, "+0" )
  599.     PORT_DIPSETTING(    0x04, "+1" )
  600.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  601.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  602.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  603.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  604.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  605.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  606.  
  607.     PORT_START    /* IN1 */
  608.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  609.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  610.     PORT_DIPNAME( 0x04, 0x00, "Invinco Lives (2/2)" )
  611.     PORT_DIPSETTING(    0x00, "+0" )
  612.     PORT_DIPSETTING(    0x04, "+2" )
  613.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  614.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  615.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  616.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  617.  
  618.     PORT_START    /* IN2 */
  619.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  620.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  621.     PORT_DIPNAME( 0x04, 0x00, "Deep Scan Lives (1/2)" )
  622.     PORT_DIPSETTING(    0x00, "+0" )
  623.     PORT_DIPSETTING(    0x04, "+1" )
  624.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  625.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  626.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
  627.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  628.  
  629.     PORT_START    /* IN3 */
  630.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  631.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  632.     /* +1 and +2 gives 2 lives instead of 6 */
  633.     PORT_DIPNAME( 0x04, 0x00, "Deep Scan Lives (2/2)" )
  634.     PORT_DIPSETTING(    0x04, "+0" )
  635.     PORT_DIPSETTING(    0x00, "+2" )
  636.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  637.     PORT_BITX(0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_TOGGLE, "Game Select", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  638.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  639.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  640. INPUT_PORTS_END
  641.  
  642. INPUT_PORTS_START( tranqgun )
  643.     PORT_START    /* IN0 */
  644.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
  645.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  646.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  647.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  648.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  649.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
  650.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  651.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  652.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  653.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  654.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  655.  
  656.     PORT_START    /* IN1 */
  657.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  658.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  659.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  660.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  661.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  662.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  663.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  664.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  665.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  666.  
  667.     PORT_START    /* IN2 */
  668.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
  669.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  670.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  671.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  672.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  673.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer */
  674.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  675.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  676.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  677.  
  678.     PORT_START    /* IN3 */
  679.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
  680.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  681.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  682.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  683.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  684.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  685.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  686.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  687.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  688. INPUT_PORTS_END
  689.  
  690. INPUT_PORTS_START( spacetrk )
  691.     PORT_START    /* IN0 */
  692.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  693.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  694.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
  695.     PORT_DIPSETTING(    0x04, "3" )
  696.     PORT_DIPSETTING(    0x00, "4" )
  697.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  698.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  699.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  700.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  701.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  702.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  703.  
  704.     PORT_START    /* IN1 */
  705.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  706.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  707.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */
  708.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  709.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  710.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  711.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  712.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
  713.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  714.  
  715.     PORT_START    /* IN2 */
  716.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  717.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )    /* must be high for bonus life to work */
  718.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
  719.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  720.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  721.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  722.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  723.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  724.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  725.  
  726.     PORT_START    /* IN3 */
  727.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  728.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )    /* must be high for bonus life to work */
  729.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  730.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  731.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  732.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  733.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
  734.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  735.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  736. INPUT_PORTS_END
  737.  
  738. INPUT_PORTS_START( sptrekct )
  739.     PORT_START    /* IN0 */
  740.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
  741.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  742.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
  743.     PORT_DIPSETTING(    0x04, "3" )
  744.     PORT_DIPSETTING(    0x00, "4" )
  745.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  746.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  747.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  748.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  749.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  750.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  751.  
  752.     PORT_START    /* IN1 */
  753.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
  754.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  755.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */
  756.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  757.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  758.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  759.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  760.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
  761.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  762.  
  763.     PORT_START    /* IN2 */
  764.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
  765.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )    /* must be high for bonus life to work */
  766.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
  767.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  768.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  769.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  770.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  771.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  772.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  773.  
  774.     PORT_START    /* IN3 */
  775.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
  776.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )    /* must be high for bonus life to work */
  777.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  778.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  779.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  780.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  781.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
  782.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  783.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  784. INPUT_PORTS_END
  785.  
  786. INPUT_PORTS_START( carnival )
  787.     PORT_START    /* IN0 */
  788.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  789.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  790.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  791.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  792.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  793.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  794.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  795.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  796.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) )
  797.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  798.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  799.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  800.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  801.  
  802.     PORT_START    /* IN1 */
  803.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  804.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  805.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  806.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  807.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  808.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  809.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  810.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  811.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  812.  
  813.     PORT_START    /* IN2 */
  814.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  815.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  816.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  817.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  818.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  819.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  820.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  821.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  822.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  823.  
  824.     PORT_START    /* IN3 */
  825.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  826.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  827.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  828.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  829.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  830.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  831.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  832.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  833.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  834. INPUT_PORTS_END
  835.  
  836. INPUT_PORTS_START( carnvckt )
  837.     PORT_START    /* IN0 */
  838.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  839.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  840.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  841.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  842.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  843.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  844.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  845.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  846.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) )
  847.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  848.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  849.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  850.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  851.  
  852.     PORT_START    /* IN1 */
  853.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT    | IPF_2WAY | IPF_COCKTAIL )
  854.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  855.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  856.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  857.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  858.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  859.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
  860.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
  861.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  862.  
  863.     PORT_START    /* IN2 */
  864.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  865.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  866.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  867.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  868.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  869.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  870.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  871.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  872.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  873.  
  874.     PORT_START    /* IN3 */
  875.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_COCKTAIL )
  876.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  877.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  878.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  879.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  880.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  881.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  882.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  883.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  884. INPUT_PORTS_END
  885.  
  886. INPUT_PORTS_START( digger )
  887.     PORT_START    /* IN0 */
  888.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  889.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  890.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
  891.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
  892.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  893.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  894.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  895.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  896.  
  897.     PORT_START    /* IN1 */
  898.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  899.     PORT_DIPSETTING(    0x03, "3" )
  900.     PORT_DIPSETTING(    0x02, "4" )
  901.     PORT_DIPSETTING(    0x01, "5" )
  902.     PORT_DIPSETTING(    0x00, "6" )
  903.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  904.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  905.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  906.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  907.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  908.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  909.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
  910.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  911.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  912.     PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  913.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) )
  914.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  915.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  916.  
  917.     PORT_START    /* IN2 */
  918.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
  919.     PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  920.     PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  921. INPUT_PORTS_END
  922.  
  923. INPUT_PORTS_START( pulsar )
  924.     PORT_START    /* IN0 */
  925.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  926.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  927.     PORT_DIPNAME( 0x04, 0x04, "Lives (1/2)" )
  928.     PORT_DIPSETTING(    0x04, "+0" )
  929.     PORT_DIPSETTING(    0x00, "+2" )
  930.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
  931.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  932.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  933.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  934.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  935.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  936.  
  937.     PORT_START    /* IN1 */
  938.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  939.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  940.     PORT_DIPNAME( 0x04, 0x04, "Lives (2/2)" )
  941.     PORT_DIPSETTING(    0x04, "+0" )
  942.     PORT_DIPSETTING(    0x00, "+1" )
  943.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  944.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  945.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  946.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  947.  
  948.     PORT_START    /* IN2 */
  949.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  950.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  951.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  952.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  953.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  954.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* timer - unused */
  955.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  956.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  957.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  958.  
  959.     PORT_START    /* IN3 */
  960.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  961.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
  962.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
  963.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  964.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  965.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  966.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  967.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  968.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  969. INPUT_PORTS_END
  970.  
  971. INPUT_PORTS_START( heiankyo )
  972.     PORT_START    /* IN0 */
  973.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
  974.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  975.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* bonus life? */
  976.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  977.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  978.     PORT_DIPNAME( 0x08, 0x00, "2 Players Mode" )
  979.     PORT_DIPSETTING(    0x08, "Alternating" )
  980.     PORT_DIPSETTING(    0x00, "Simultaneous" )
  981.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
  982.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  983.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  984.  
  985.     PORT_START    /* IN1 */
  986.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  987.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  988.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* bonus life? */
  989.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  990.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  991.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_VBLANK )
  992.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  993.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
  994.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  995.  
  996.     PORT_START    /* IN2 */
  997.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
  998.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  999.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* bonus life? */
  1000.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1001.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1002.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* timer - unused */
  1003.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
  1004.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1005.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )    /* probably unused */
  1006.  
  1007.     PORT_START    /* IN3 */
  1008.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
  1009.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1010.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) )
  1011.     PORT_DIPSETTING(    0x00, "3" )
  1012.     PORT_DIPSETTING(    0x04, "5" )
  1013.     PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_LOW, IPT_COIN1 | IPF_RESETCPU, 30 )
  1014.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
  1015.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  1016.     PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  1017. INPUT_PORTS_END
  1018.  
  1019.  
  1020.  
  1021. static struct GfxLayout charlayout =
  1022. {
  1023.     8,8,    /* 8*8 characters */
  1024.     256,    /* 256 characters */
  1025.     1,    /* 1 bit per pixel */
  1026.     { 0 },
  1027.     { 0, 1, 2, 3, 4, 5, 6, 7 },    /* pretty straightforward layout */
  1028.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  1029.     8*8    /* every char takes 8 consecutive bytes */
  1030. };
  1031.  
  1032. static struct GfxDecodeInfo gfxdecodeinfo[] =
  1033. {
  1034.     { 0, 0xe800, &charlayout, 0, 32 },    /* the game dynamically modifies this */
  1035.     { -1 }    /* end of array */
  1036. };
  1037.  
  1038.  
  1039.  
  1040. static struct Samplesinterface samples_interface =
  1041. {
  1042.     12,    /* 12 channels */
  1043.     50,    /* volume */
  1044.     0    /* samplenames filled in later by the _init function */
  1045. };
  1046.  
  1047.  
  1048. #define MACHINEDRIVER(NAME, MEM, PORT)                \
  1049. static struct MachineDriver machine_driver_##NAME =    \
  1050. {                                                    \
  1051.     /* basic machine hardware */                    \
  1052.     {                                                \
  1053.         {                                            \
  1054.             CPU_Z80,                                \
  1055.             15468480/8,                                \
  1056.             MEM##_readmem,MEM##_writemem,readport_##PORT,writeport,    \
  1057.             ignore_interrupt,1                        \
  1058.         }                                            \
  1059.     },                                                \
  1060.     60, 5000,    /* frames per second, vblank duration */    \
  1061.     1,    /* single CPU, no need for interleaving */    \
  1062.     0,                                                \
  1063.                                                     \
  1064.     /* video hardware */                            \
  1065.     32*8, 32*8, { 0*8, 32*8-1, 0*8, 28*8-1 },        \
  1066.     gfxdecodeinfo,                                    \
  1067.     64, 64,                                            \
  1068.     vicdual_vh_convert_color_prom,                    \
  1069.                                                     \
  1070.     VIDEO_TYPE_RASTER|VIDEO_SUPPORTS_DIRTY,            \
  1071.     0,                                                \
  1072.     generic_vh_start,                                \
  1073.     generic_vh_stop,                                \
  1074.     vicdual_vh_screenrefresh,                        \
  1075.                                                     \
  1076.     /* sound hardware */                            \
  1077.     0,0,0,0,                                        \
  1078.     {                                                \
  1079.         {                                            \
  1080.             SOUND_SAMPLES,                            \
  1081.             &samples_interface                        \
  1082.         }                                            \
  1083.     }                                                \
  1084. };
  1085.  
  1086. MACHINEDRIVER( 2ports, vicdual, 2ports )
  1087. MACHINEDRIVER( 3ports, vicdual, 3ports )
  1088. MACHINEDRIVER( 4ports, vicdual, 4ports )
  1089. MACHINEDRIVER( safari, safari,  safari )
  1090.  
  1091.  
  1092. static struct AY8910interface carnival_ay8910_interface =
  1093. {
  1094.     1,    /* 1 chips */
  1095.     PSG_CLOCK_CARNIVAL,
  1096.     { 35 },
  1097.     { 0 },
  1098.     { 0 },
  1099.     { 0 },
  1100.     { 0 }
  1101. };
  1102.  
  1103. /* don't know if any of the other games use the 8048 music board */
  1104. /* so, we won't burden those drivers with the extra music handling */
  1105. static struct MachineDriver machine_driver_carnival =
  1106. {
  1107.     /* basic machine hardware */
  1108.     {
  1109.         {
  1110.             CPU_Z80,
  1111.             15468480/8,
  1112.             vicdual_readmem,vicdual_writemem,readport_4ports,writeport,
  1113.             ignore_interrupt,1
  1114.         },
  1115.         {
  1116.             CPU_I8039 | CPU_AUDIO_CPU,
  1117.             ( ( 3579545 / 5 ) / 3 ),
  1118.             i8039_readmem,i8039_writemem,i8039_readport,i8039_writeport,
  1119.             ignore_interrupt,1
  1120.         }
  1121.     },
  1122.     60, 5000,    /* frames per second, vblank duration */
  1123.     10,
  1124.     0,
  1125.  
  1126.     /* video hardware */
  1127.     32*8, 32*8, { 0*8, 32*8-1, 0*8, 28*8-1 },
  1128.     gfxdecodeinfo,
  1129.     64, 64,
  1130.     vicdual_vh_convert_color_prom,
  1131.  
  1132.     VIDEO_TYPE_RASTER|VIDEO_SUPPORTS_DIRTY,
  1133.     0,
  1134.     generic_vh_start,
  1135.     generic_vh_stop,
  1136.     vicdual_vh_screenrefresh,
  1137.  
  1138.     /* sound hardware */
  1139.     0,0,0,0,
  1140.     {
  1141.         {
  1142.             SOUND_AY8910,
  1143.             &carnival_ay8910_interface
  1144.         },
  1145.         {
  1146.             SOUND_SAMPLES,
  1147.             &samples_interface
  1148.         }
  1149.     }
  1150. };
  1151.  
  1152.  
  1153.  
  1154. /***************************************************************************
  1155.  
  1156.   Game driver(s)
  1157.  
  1158. ***************************************************************************/
  1159.  
  1160. ROM_START( depthch )
  1161.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1162.     ROM_LOAD( "50a",          0x0000, 0x0400, 0x56c5ffed )
  1163.     ROM_LOAD( "51a",          0x0400, 0x0400, 0x695eb81f )
  1164.     ROM_LOAD( "52",           0x0800, 0x0400, 0xaed0ba1b )
  1165.     ROM_LOAD( "53",           0x0c00, 0x0400, 0x2ccbd2d0 )
  1166.     ROM_LOAD( "54a",          0x1000, 0x0400, 0x1b7f6a43 )
  1167.     ROM_LOAD( "55a",          0x1400, 0x0400, 0x9fc2eb41 )
  1168.  
  1169.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs, but no color so don't use REGION_PROMS! */
  1170.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1171.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1172. ROM_END
  1173.  
  1174. ROM_START( safari )
  1175.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1176.     ROM_LOAD( "3160066.u48",  0x0000, 0x0400, 0x2a26b098 )
  1177.     ROM_LOAD( "3160065.u47",  0x0400, 0x0400, 0xb776f7db )
  1178.     ROM_LOAD( "3160064.u46",  0x0800, 0x0400, 0x19d8c196 )
  1179.     ROM_LOAD( "3160063.u45",  0x0c00, 0x0400, 0x028bad25 )
  1180.     ROM_LOAD( "3160062.u44",  0x1000, 0x0400, 0x504e0575 )
  1181.     ROM_LOAD( "3160061.u43",  0x1400, 0x0400, 0xd4c528e0 )
  1182.     ROM_LOAD( "3160060.u42",  0x1800, 0x0400, 0x48c7b0cc )
  1183.     ROM_LOAD( "3160059.u41",  0x1c00, 0x0400, 0x3f7baaff )
  1184.     ROM_LOAD( "3160058.u40",  0x2000, 0x0400, 0x0d5058f1 )
  1185.     ROM_LOAD( "3160057.u39",  0x2400, 0x0400, 0x298e8c41 )
  1186.  
  1187.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs, but no color so don't use REGION_PROMS! */
  1188.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1189.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1190.  
  1191. ROM_END
  1192.  
  1193. ROM_START( frogs )
  1194.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1195.     ROM_LOAD( "119a.u48",     0x0000, 0x0400, 0xb1d1fce4 )
  1196.     ROM_LOAD( "118a.u47",     0x0400, 0x0400, 0x12fdcc05 )
  1197.     ROM_LOAD( "117a.u46",     0x0800, 0x0400, 0x8a5be424 )
  1198.     ROM_LOAD( "116b.u45",     0x0c00, 0x0400, 0x09b82619 )
  1199.     ROM_LOAD( "115a.u44",     0x1000, 0x0400, 0x3d4e4fa8 )
  1200.     ROM_LOAD( "114a.u43",     0x1400, 0x0400, 0x04a21853 )
  1201.     ROM_LOAD( "113a.u42",     0x1800, 0x0400, 0x02786692 )
  1202.     ROM_LOAD( "112a.u41",     0x1c00, 0x0400, 0x0be2a058 )
  1203. ROM_END
  1204.  
  1205. ROM_START( sspaceat )
  1206.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1207.     ROM_LOAD( "155.u27",      0x0000, 0x0400, 0xba7bb86f )
  1208.     ROM_LOAD( "156.u26",      0x0400, 0x0400, 0x0b3a491c )
  1209.     ROM_LOAD( "157.u25",      0x0800, 0x0400, 0x3d3fac3b )
  1210.     ROM_LOAD( "158.u24",      0x0c00, 0x0400, 0x843b80f6 )
  1211.     ROM_LOAD( "159.u23",      0x1000, 0x0400, 0x1eacf60d )
  1212.     ROM_LOAD( "160.u22",      0x1400, 0x0400, 0xe61d482f )
  1213.     ROM_LOAD( "161.u21",      0x1800, 0x0400, 0xeb5e0993 )
  1214.     ROM_LOAD( "162.u20",      0x1c00, 0x0400, 0x5f84d550 )
  1215.  
  1216.     ROM_REGION( 0x0020, REGION_PROMS )
  1217.     ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, 0x67104ea9 )
  1218. ROM_END
  1219.  
  1220. ROM_START( sspacat2 )
  1221.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1222.     ROM_LOAD( "81.u48",       0x0000, 0x0400, 0x3e4b29f6 )
  1223.     ROM_LOAD( "58.u47",       0x0400, 0x0400, 0x176adb80 )
  1224.     ROM_LOAD( "59.u46",       0x0800, 0x0400, 0xb2400d05 )
  1225.     ROM_LOAD( "150.u45",      0x0c00, 0x0400, 0xcf9bfa65 )
  1226.     ROM_LOAD( "151.u44",      0x1000, 0x0400, 0x064530f1 )
  1227.     ROM_LOAD( "152.u43",      0x1400, 0x0400, 0xc65c30fe )
  1228.     ROM_LOAD( "153.u42",      0x1800, 0x0400, 0xea70c7f6 )
  1229.     ROM_LOAD( "156a.u41",     0x1c00, 0x0400, 0x9029d2ce )
  1230.  
  1231.     ROM_REGION( 0x0020, REGION_PROMS )
  1232.     ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, 0x67104ea9 )
  1233. ROM_END
  1234.  
  1235. ROM_START( sspacatc )
  1236.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1237.     ROM_LOAD( "139.u27",      0x0000, 0x0400, 0x9f2112fc )
  1238.     ROM_LOAD( "140.u26",      0x0400, 0x0400, 0xddbeed35 )
  1239.     ROM_LOAD( "141.u25",      0x0800, 0x0400, 0xb159924d )
  1240.     ROM_LOAD( "142.u24",      0x0c00, 0x0400, 0xf2ebfce9 )
  1241.     ROM_LOAD( "143.u23",      0x1000, 0x0400, 0xbff34a66 )
  1242.     ROM_LOAD( "144.u22",      0x1400, 0x0400, 0xfa062d58 )
  1243.     ROM_LOAD( "145.u21",      0x1800, 0x0400, 0x7e950614 )
  1244.     ROM_LOAD( "146.u20",      0x1c00, 0x0400, 0x8ba94fbc )
  1245.  
  1246.     ROM_REGION( 0x0020, REGION_PROMS )
  1247.     ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, 0x67104ea9 )
  1248. ROM_END
  1249.  
  1250. ROM_START( headon )
  1251.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1252.     ROM_LOAD( "163a",         0x0000, 0x0400, 0x4bb51259 )
  1253.     ROM_LOAD( "164a",         0x0400, 0x0400, 0xaeac8c5f )
  1254.     ROM_LOAD( "165a",         0x0800, 0x0400, 0xf1a0cb72 )
  1255.     ROM_LOAD( "166c",         0x0c00, 0x0400, 0x65d12951 )
  1256.     ROM_LOAD( "167c",         0x1000, 0x0400, 0x2280831e )
  1257.     ROM_LOAD( "192a",         0x1400, 0x0400, 0xed4666f2 )
  1258.     ROM_LOAD( "193a",         0x1800, 0x0400, 0x37a1df4c )
  1259.  
  1260.     ROM_REGION( 0x0020, REGION_PROMS )
  1261.     ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, 0x67104ea9 )
  1262. ROM_END
  1263.  
  1264. ROM_START( headonb )
  1265.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1266.     ROM_LOAD( "163a",         0x0000, 0x0400, 0x4bb51259 )
  1267.     ROM_LOAD( "164a",         0x0400, 0x0400, 0xaeac8c5f )
  1268.     ROM_LOAD( "165a",         0x0800, 0x0400, 0xf1a0cb72 )
  1269.     ROM_LOAD( "166b",         0x0c00, 0x0400, 0x1c59008a )
  1270.     ROM_LOAD( "167a",         0x1000, 0x0400, 0x069e839e )
  1271.     ROM_LOAD( "192a",         0x1400, 0x0400, 0xed4666f2 )
  1272.     ROM_LOAD( "193a-1",       0x1800, 0x0400, 0xd3782c1d )
  1273.  
  1274.     ROM_REGION( 0x0020, REGION_PROMS )
  1275.     ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, 0x67104ea9 )
  1276. ROM_END
  1277.  
  1278. ROM_START( headon2 )
  1279.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1280.     ROM_LOAD( "u27.bin",      0x0000, 0x0400, 0xfa47d2fb )
  1281.     ROM_LOAD( "u26.bin",      0x0400, 0x0400, 0x61c47b15 )
  1282.     ROM_LOAD( "u25.bin",      0x0800, 0x0400, 0xbb16db92 )
  1283.     ROM_LOAD( "u24.bin",      0x0c00, 0x0400, 0x17a09f24 )
  1284.     ROM_LOAD( "u23.bin",      0x1000, 0x0400, 0x0024895e )
  1285.     ROM_LOAD( "u22.bin",      0x1400, 0x0400, 0xf798304d )
  1286.     ROM_LOAD( "u21.bin",      0x1800, 0x0400, 0x4c19dd40 )
  1287.     ROM_LOAD( "u20.bin",      0x1c00, 0x0400, 0x25887ff2 )
  1288.  
  1289.     ROM_REGION( 0x0020, REGION_PROMS )
  1290.     ROM_LOAD( "316-0138.u44", 0x0000, 0x0020, 0x67104ea9 )
  1291. ROM_END
  1292.  
  1293. ROM_START( invho2 )
  1294.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1295.     ROM_LOAD( "271b.u33",     0x0000, 0x0400, 0x44356a73 )
  1296.     ROM_LOAD( "272b.u32",     0x0400, 0x0400, 0xbd251265 )
  1297.     ROM_LOAD( "273b.u31",     0x0800, 0x0400, 0x2fc80cd9 )
  1298.     ROM_LOAD( "274b.u30",     0x0c00, 0x0400, 0x4fac4210 )
  1299.     ROM_LOAD( "275b.u29",     0x1000, 0x0400, 0x85af508e )
  1300.     ROM_LOAD( "276b.u28",     0x1400, 0x0400, 0xe305843a )
  1301.     ROM_LOAD( "277b.u27",     0x1800, 0x0400, 0xb6b4221e )
  1302.     ROM_LOAD( "278b.u26",     0x1c00, 0x0400, 0x74d42250 )
  1303.     ROM_LOAD( "279b.u8",      0x2000, 0x0400, 0x8d30a3e0 )
  1304.     ROM_LOAD( "280b.u7",      0x2400, 0x0400, 0xb5ee60ec )
  1305.     ROM_LOAD( "281b.u6",      0x2800, 0x0400, 0x21a6d4f2 )
  1306.     ROM_LOAD( "282b.u5",      0x2c00, 0x0400, 0x07d54f8a )
  1307.     ROM_LOAD( "283b.u4",      0x3000, 0x0400, 0xbdbe7ec1 )
  1308.     ROM_LOAD( "284b.u3",      0x3400, 0x0400, 0xae9e9f16 )
  1309.     ROM_LOAD( "285b.u2",      0x3800, 0x0400, 0x8dc3ec34 )
  1310.     ROM_LOAD( "286b.u1",      0x3c00, 0x0400, 0x4bab9ba2 )
  1311.  
  1312.     ROM_REGION( 0x0020, REGION_PROMS )
  1313.     ROM_LOAD( "316-0287.u49", 0x0000, 0x0020, 0xd4374b01 )
  1314. ROM_END
  1315.  
  1316. ROM_START( samurai )
  1317.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1318.     ROM_LOAD( "epr289.u33",   0x0000, 0x0400, 0xa1a9cb03 )
  1319.     ROM_LOAD( "epr290.u32",   0x0400, 0x0400, 0x49fede51 )
  1320.     ROM_LOAD( "epr291.u31",   0x0800, 0x0400, 0x6503dd72 )
  1321.     ROM_LOAD( "epr292.u30",   0x0c00, 0x0400, 0x179c224f )
  1322.     ROM_LOAD( "epr366.u29",   0x1000, 0x0400, 0x3df2abec )
  1323.     ROM_LOAD( "epr355.u28",   0x1400, 0x0400, 0xb24517a4 )
  1324.     ROM_LOAD( "epr367.u27",   0x1800, 0x0400, 0x992a6e5a )
  1325.     ROM_LOAD( "epr368.u26",   0x1c00, 0x0400, 0x403c72ce )
  1326.     ROM_LOAD( "epr369.u8",    0x2000, 0x0400, 0x3cfd115b )
  1327.     ROM_LOAD( "epr370.u7",    0x2400, 0x0400, 0x2c30db12 )
  1328.     ROM_LOAD( "epr299.u6",    0x2800, 0x0400, 0x87c71139 )
  1329.     ROM_LOAD( "epr371.u5",    0x2c00, 0x0400, 0x761f56cf )
  1330.     ROM_LOAD( "epr301.u4",    0x3000, 0x0400, 0x23de1ff7 )
  1331.     ROM_LOAD( "epr372.u3",    0x3400, 0x0400, 0x292cfd89 )
  1332.  
  1333.     ROM_REGION( 0x0020, REGION_PROMS )
  1334.     ROM_LOAD( "pr55.clr",     0x0000, 0x0020, 0x975f5fb0 )
  1335.  
  1336.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs */
  1337.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1338.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1339. ROM_END
  1340.  
  1341. ROM_START( invinco )
  1342.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1343.     ROM_LOAD( "310a.u27",     0x0000, 0x0400, 0xe3931365 )
  1344.     ROM_LOAD( "311a.u26",     0x0400, 0x0400, 0xde1a6c4a )
  1345.     ROM_LOAD( "312a.u25",     0x0800, 0x0400, 0xe3c08f39 )
  1346.     ROM_LOAD( "313a.u24",     0x0c00, 0x0400, 0xb680b306 )
  1347.     ROM_LOAD( "314a.u23",     0x1000, 0x0400, 0x790f07d9 )
  1348.     ROM_LOAD( "315a.u22",     0x1400, 0x0400, 0x0d13bed2 )
  1349.     ROM_LOAD( "316a.u21",     0x1800, 0x0400, 0x88d7eab8 )
  1350.     ROM_LOAD( "317a.u20",     0x1c00, 0x0400, 0x75389463 )
  1351.     ROM_LOAD( "318a.uxx",     0x2000, 0x0400, 0x0780721d )
  1352.  
  1353.     ROM_REGION( 0x0020, REGION_PROMS )
  1354.     ROM_LOAD( "316-246.u44",  0x0000, 0x0020, 0xfe4406cb )
  1355. ROM_END
  1356.  
  1357. ROM_START( invds )
  1358.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1359.     ROM_LOAD( "367.u33",      0x0000, 0x0400, 0xe6a33eae )
  1360.     ROM_LOAD( "368.u32",      0x0400, 0x0400, 0x421554a8 )
  1361.     ROM_LOAD( "369.u31",      0x0800, 0x0400, 0x531e917a )
  1362.     ROM_LOAD( "370.u30",      0x0c00, 0x0400, 0x2ad68f8c )
  1363.     ROM_LOAD( "371.u29",      0x1000, 0x0400, 0x1b98dc5c )
  1364.     ROM_LOAD( "372.u28",      0x1400, 0x0400, 0x3a72190a )
  1365.     ROM_LOAD( "373.u27",      0x1800, 0x0400, 0x3d361520 )
  1366.     ROM_LOAD( "374.u26",      0x1c00, 0x0400, 0xe606e7d9 )
  1367.     ROM_LOAD( "375.u8",       0x2000, 0x0400, 0xadbe8d32 )
  1368.     ROM_LOAD( "376.u7",       0x2400, 0x0400, 0x79409a46 )
  1369.     ROM_LOAD( "377.u6",       0x2800, 0x0400, 0x3f021a71 )
  1370.     ROM_LOAD( "378.u5",       0x2c00, 0x0400, 0x49a542b0 )
  1371.     ROM_LOAD( "379.u4",       0x3000, 0x0400, 0xee140e49 )
  1372.     ROM_LOAD( "380.u3",       0x3400, 0x0400, 0x688ba831 )
  1373.     ROM_LOAD( "381.u2",       0x3800, 0x0400, 0x798ba0c7 )
  1374.     ROM_LOAD( "382.u1",       0x3c00, 0x0400, 0x8d195c24 )
  1375.  
  1376.     ROM_REGION( 0x0020, REGION_PROMS )
  1377.     ROM_LOAD( "316-246",      0x0000, 0x0020, 0xfe4406cb )
  1378.  
  1379.     ROM_REGION( 0x0020, REGION_USER1 )    /* misc PROM */
  1380.     ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, 0x9617d796 )    /* control PROM */
  1381. ROM_END
  1382.  
  1383. ROM_START( tranqgun )
  1384.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1385.     ROM_LOAD( "u33.bin",      0x0000, 0x0400, 0x6d50e902 )
  1386.     ROM_LOAD( "u32.bin",      0x0400, 0x0400, 0xf0ba0e60 )
  1387.     ROM_LOAD( "u31.bin",      0x0800, 0x0400, 0x9fe440d3 )
  1388.     ROM_LOAD( "u30.bin",      0x0c00, 0x0400, 0x1041608e )
  1389.     ROM_LOAD( "u29.bin",      0x1000, 0x0400, 0xfb5de95f )
  1390.     ROM_LOAD( "u28.bin",      0x1400, 0x0400, 0x03fd8727 )
  1391.     ROM_LOAD( "u27.bin",      0x1800, 0x0400, 0x3d93239b )
  1392.     ROM_LOAD( "u26.bin",      0x1c00, 0x0400, 0x20f64a7f )
  1393.     ROM_LOAD( "u8.bin",       0x2000, 0x0400, 0x5121c695 )
  1394.     ROM_LOAD( "u7.bin",       0x2400, 0x0400, 0xb13d21f7 )
  1395.     ROM_LOAD( "u6.bin",       0x2800, 0x0400, 0x603cee59 )
  1396.     ROM_LOAD( "u5.bin",       0x2c00, 0x0400, 0x7f25475f )
  1397.     ROM_LOAD( "u4.bin",       0x3000, 0x0400, 0x57dc3123 )
  1398.     ROM_LOAD( "u3.bin",       0x3400, 0x0400, 0x7aa7829b )
  1399.     ROM_LOAD( "u2.bin",       0x3800, 0x0400, 0xa9b10df5 )
  1400.     ROM_LOAD( "u1.bin",       0x3c00, 0x0400, 0x431a7449 )
  1401.  
  1402.     ROM_REGION( 0x0020, REGION_PROMS )
  1403.     ROM_LOAD( "u49.bin",      0x0000, 0x0020, 0x6481445b )
  1404.  
  1405.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs */
  1406.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1407.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1408. ROM_END
  1409.  
  1410. ROM_START( spacetrk )
  1411.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1412.     ROM_LOAD( "u33.bin",      0x0000, 0x0400, 0x9033fe50 )
  1413.     ROM_LOAD( "u32.bin",      0x0400, 0x0400, 0x08f61f0d )
  1414.     ROM_LOAD( "u31.bin",      0x0800, 0x0400, 0x1088a8c4 )
  1415.     ROM_LOAD( "u30.bin",      0x0c00, 0x0400, 0x55560cc8 )
  1416.     ROM_LOAD( "u29.bin",      0x1000, 0x0400, 0x71713958 )
  1417.     ROM_LOAD( "u28.bin",      0x1400, 0x0400, 0x7bcf5ca3 )
  1418.     ROM_LOAD( "u27.bin",      0x1800, 0x0400, 0xad7a2065 )
  1419.     ROM_LOAD( "u26.bin",      0x1c00, 0x0400, 0x6060fe77 )
  1420.     ROM_LOAD( "u8.bin",       0x2000, 0x0400, 0x75a90624 )
  1421.     ROM_LOAD( "u7.bin",       0x2400, 0x0400, 0x7b31a2ab )
  1422.     ROM_LOAD( "u6.bin",       0x2800, 0x0400, 0x94135b33 )
  1423.     ROM_LOAD( "u5.bin",       0x2c00, 0x0400, 0xcfbf2538 )
  1424.     ROM_LOAD( "u4.bin",       0x3000, 0x0400, 0xb4b95129 )
  1425.     ROM_LOAD( "u3.bin",       0x3400, 0x0400, 0x03ca1d70 )
  1426.     ROM_LOAD( "u2.bin",       0x3800, 0x0400, 0xa968584b )
  1427.     ROM_LOAD( "u1.bin",       0x3c00, 0x0400, 0xe6e300e8 )
  1428.  
  1429.     ROM_REGION( 0x0020, REGION_PROMS )
  1430.     ROM_LOAD( "u49.bin",      0x0000, 0x0020, 0xaabae4cd )
  1431.  
  1432.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs */
  1433.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1434.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1435. ROM_END
  1436.  
  1437. ROM_START( sptrekct )
  1438.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1439.     ROM_LOAD( "u33c.bin",     0x0000, 0x0400, 0xb056b928 )
  1440.     ROM_LOAD( "u32c.bin",     0x0400, 0x0400, 0xdffb11d9 )
  1441.     ROM_LOAD( "u31c.bin",     0x0800, 0x0400, 0x9b25d46f )
  1442.     ROM_LOAD( "u30c.bin",     0x0c00, 0x0400, 0x3a612bfe )
  1443.     ROM_LOAD( "u29c.bin",     0x1000, 0x0400, 0xd8bb6e0c )
  1444.     ROM_LOAD( "u28c.bin",     0x1400, 0x0400, 0x0e367740 )
  1445.     ROM_LOAD( "u27c.bin",     0x1800, 0x0400, 0xd59fec86 )
  1446.     ROM_LOAD( "u26c.bin",     0x1c00, 0x0400, 0x9deefa0f )
  1447.     ROM_LOAD( "u8c.bin",      0x2000, 0x0400, 0x613116c5 )
  1448.     ROM_LOAD( "u7c.bin",      0x2400, 0x0400, 0x3bdf2464 )
  1449.     ROM_LOAD( "u6c.bin",      0x2800, 0x0400, 0x039d73fa )
  1450.     ROM_LOAD( "u5c.bin",      0x2c00, 0x0400, 0x1638344f )
  1451.     ROM_LOAD( "u4c.bin",      0x3000, 0x0400, 0xe34443cd )
  1452.     ROM_LOAD( "u3c.bin",      0x3400, 0x0400, 0x6f16cbd7 )
  1453.     ROM_LOAD( "u2c.bin",      0x3800, 0x0400, 0x94da3cdc )
  1454.     ROM_LOAD( "u1c.bin",      0x3c00, 0x0400, 0x2a228bf4 )
  1455.  
  1456.     ROM_REGION( 0x0020, REGION_PROMS )
  1457.     ROM_LOAD( "u49.bin",      0x0000, 0x0020, 0xaabae4cd )
  1458.  
  1459.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs */
  1460.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1461.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1462. ROM_END
  1463.  
  1464. ROM_START( carnival )
  1465.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1466.     ROM_LOAD( "651u33.cpu",   0x0000, 0x0400, 0x9f2736e6 )
  1467.     ROM_LOAD( "652u32.cpu",   0x0400, 0x0400, 0xa1f58beb )
  1468.     ROM_LOAD( "653u31.cpu",   0x0800, 0x0400, 0x67b17922 )
  1469.     ROM_LOAD( "654u30.cpu",   0x0c00, 0x0400, 0xbefb09a5 )
  1470.     ROM_LOAD( "655u29.cpu",   0x1000, 0x0400, 0x623fcdad )
  1471.     ROM_LOAD( "656u28.cpu",   0x1400, 0x0400, 0x53040332 )
  1472.     ROM_LOAD( "657u27.cpu",   0x1800, 0x0400, 0xf2537467 )
  1473.     ROM_LOAD( "658u26.cpu",   0x1c00, 0x0400, 0xfcc3854e )
  1474.     ROM_LOAD( "659u8.cpu",    0x2000, 0x0400, 0x28be8d69 )
  1475.     ROM_LOAD( "660u7.cpu",    0x2400, 0x0400, 0x3873ccdb )
  1476.     ROM_LOAD( "661u6.cpu",    0x2800, 0x0400, 0xd9a96dff )
  1477.     ROM_LOAD( "662u5.cpu",    0x2c00, 0x0400, 0xd893ca72 )
  1478.     ROM_LOAD( "663u4.cpu",    0x3000, 0x0400, 0xdf8c63c5 )
  1479.     ROM_LOAD( "664u3.cpu",    0x3400, 0x0400, 0x689a73e8 )
  1480.     ROM_LOAD( "665u2.cpu",    0x3800, 0x0400, 0x28e7b2b6 )
  1481.     ROM_LOAD( "666u1.cpu",    0x3c00, 0x0400, 0x4eec7fae )
  1482.  
  1483.     ROM_REGION( 0x0020, REGION_PROMS )
  1484.     ROM_LOAD( "316-633",      0x0000, 0x0020, 0xf0084d80 )
  1485.  
  1486.     ROM_REGION( 0x0800, REGION_CPU2 )    /* sound ROM */
  1487.     ROM_LOAD( "crvl.snd",     0x0000, 0x0400, 0x0dbaa2b0 )
  1488. ROM_END
  1489.  
  1490. ROM_START( carnvckt )
  1491.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1492.     ROM_LOAD( "epr501",       0x0000, 0x0400, 0x688503d2 )
  1493.     ROM_LOAD( "652u32.cpu",   0x0400, 0x0400, 0xa1f58beb )
  1494.     ROM_LOAD( "653u31.cpu",   0x0800, 0x0400, 0x67b17922 )
  1495.     ROM_LOAD( "654u30.cpu",   0x0c00, 0x0400, 0xbefb09a5 )
  1496.     ROM_LOAD( "655u29.cpu",   0x1000, 0x0400, 0x623fcdad )
  1497.     ROM_LOAD( "epr506",       0x1400, 0x0400, 0xba916e97 )
  1498.     ROM_LOAD( "epr507",       0x1800, 0x0400, 0xd0bda4a5 )
  1499.     ROM_LOAD( "epr508",       0x1c00, 0x0400, 0xf0258cad )
  1500.     ROM_LOAD( "epr509",       0x2000, 0x0400, 0xdcc8a530 )
  1501.     ROM_LOAD( "epr510",       0x2400, 0x0400, 0x92c2ba51 )
  1502.     ROM_LOAD( "epr511",       0x2800, 0x0400, 0x3af899a0 )
  1503.     ROM_LOAD( "epr512",       0x2c00, 0x0400, 0x09f7b3e6 )
  1504.     ROM_LOAD( "epr513",       0x3000, 0x0400, 0x8f41974c )
  1505.     ROM_LOAD( "epr514",       0x3400, 0x0400, 0x2788d140 )
  1506.     ROM_LOAD( "epr515",       0x3800, 0x0400, 0x10decaa9 )
  1507.     ROM_LOAD( "epr516",       0x3c00, 0x0400, 0x7c32b352 )
  1508.  
  1509.     ROM_REGION( 0x0020, REGION_PROMS )
  1510.     ROM_LOAD( "316-633",      0x0000, 0x0020, 0xf0084d80 )
  1511.  
  1512.     ROM_REGION( 0x0800, REGION_CPU2 )    /* sound ROM */
  1513.     ROM_LOAD( "crvl.snd",     0x0000, 0x0400, 0x0dbaa2b0 )
  1514. ROM_END
  1515.  
  1516. ROM_START( digger )
  1517.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1518.     ROM_LOAD( "684.u27",      0x0000, 0x0400, 0xbba0d7c2 )
  1519.     ROM_LOAD( "685.u26",      0x0400, 0x0400, 0x85210d8b )
  1520.     ROM_LOAD( "686.u25",      0x0800, 0x0400, 0x2d87238c )
  1521.     ROM_LOAD( "687.u24",      0x0c00, 0x0400, 0x0dd0604e )
  1522.     ROM_LOAD( "688.u23",      0x1000, 0x0400, 0x2f649667 )
  1523.     ROM_LOAD( "689.u22",      0x1400, 0x0400, 0x89fd63d9 )
  1524.     ROM_LOAD( "690.u21",      0x1800, 0x0400, 0xa86622a6 )
  1525.     ROM_LOAD( "691.u20",      0x1c00, 0x0400, 0x8aca72d8 )
  1526.  
  1527.     ROM_REGION( 0x0020, REGION_PROMS )
  1528.     ROM_LOAD( "316-507",      0x0000, 0x0020, 0xfdb22e8f )
  1529.  
  1530.     ROM_REGION( 0x0020, REGION_USER1 )    /* misc PROM */
  1531.     ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, 0x9617d796 )    /* control PROM */
  1532. ROM_END
  1533.  
  1534. ROM_START( pulsar )
  1535.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1536.     ROM_LOAD( "790.u33",      0x0000, 0x0400, 0x5e3816da )
  1537.     ROM_LOAD( "791.u32",      0x0400, 0x0400, 0xce0aee83 )
  1538.     ROM_LOAD( "792.u31",      0x0800, 0x0400, 0x72d78cf1 )
  1539.     ROM_LOAD( "793.u30",      0x0c00, 0x0400, 0x42155dd4 )
  1540.     ROM_LOAD( "794.u29",      0x1000, 0x0400, 0x11c7213a )
  1541.     ROM_LOAD( "795.u28",      0x1400, 0x0400, 0xd2f02e29 )
  1542.     ROM_LOAD( "796.u27",      0x1800, 0x0400, 0x67737a2e )
  1543.     ROM_LOAD( "797.u26",      0x1c00, 0x0400, 0xec250b24 )
  1544.     ROM_LOAD( "798.u8",       0x2000, 0x0400, 0x1d34912d )
  1545.     ROM_LOAD( "799.u7",       0x2400, 0x0400, 0xf5695e4c )
  1546.     ROM_LOAD( "800.u6",       0x2800, 0x0400, 0xbf91ad92 )
  1547.     ROM_LOAD( "801.u5",       0x2c00, 0x0400, 0x1e9721dc )
  1548.     ROM_LOAD( "802.u4",       0x3000, 0x0400, 0xd32d2192 )
  1549.     ROM_LOAD( "803.u3",       0x3400, 0x0400, 0x3ede44d5 )
  1550.     ROM_LOAD( "804.u2",       0x3800, 0x0400, 0x62847b01 )
  1551.     ROM_LOAD( "805.u1",       0x3c00, 0x0400, 0xab418e86 )
  1552.  
  1553.     ROM_REGION( 0x0020, REGION_PROMS )
  1554.     ROM_LOAD( "316-0789.u49", 0x0000, 0x0020, 0x7fc1861f )
  1555.  
  1556.     ROM_REGION( 0x0020, REGION_USER1 )    /* misc PROM */
  1557.     ROM_LOAD( "316-0206.u14", 0x0000, 0x0020, 0x9617d796 )    /* control PROM */
  1558. ROM_END
  1559.  
  1560. ROM_START( heiankyo )
  1561.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1562.     ROM_LOAD( "ha16.u33",     0x0000, 0x0400, 0x1eec8b36 )
  1563.     ROM_LOAD( "ha15.u32",     0x0400, 0x0400, 0xc1b9a1a5 )
  1564.     ROM_LOAD( "ha14.u31",     0x0800, 0x0400, 0x5b7b582e )
  1565.     ROM_LOAD( "ha13.u30",     0x0c00, 0x0400, 0x4aa67e01 )
  1566.     ROM_LOAD( "ha12.u29",     0x1000, 0x0400, 0x75889ca6 )
  1567.     ROM_LOAD( "ha11.u28",     0x1400, 0x0400, 0xd469226a )
  1568.     ROM_LOAD( "ha10.u27",     0x1800, 0x0400, 0x4e203074 )
  1569.     ROM_LOAD( "ha9.u26",      0x1c00, 0x0400, 0x9c3a3dd2 )
  1570.     ROM_LOAD( "ha8.u8",       0x2000, 0x0400, 0x6cc64878 )
  1571.     ROM_LOAD( "ha7.u7",       0x2400, 0x0400, 0x6d2f9527 )
  1572.     ROM_LOAD( "ha6.u6",       0x2800, 0x0400, 0xe467c353 )
  1573.     ROM_LOAD( "ha3.u3",       0x2c00, 0x0400, 0x6a55eda8 )
  1574.     /* 3000-37ff empty */
  1575.     ROM_LOAD( "ha2.u2",       0x3800, 0x0400, 0x056b3b8b )
  1576.     ROM_LOAD( "ha1.u1",       0x3c00, 0x0400, 0xb8da2b5e )
  1577.  
  1578.     ROM_REGION( 0x0020, REGION_PROMS )
  1579.     ROM_LOAD( "316-138.u49",  0x0000, 0x0020, 0x67104ea9 )
  1580.  
  1581.     ROM_REGION( 0x0040, REGION_USER1 )    /* misc PROMs */
  1582.     ROM_LOAD( "316-0043.u87", 0x0000, 0x0020, 0xe60a7960 )    /* control PROM */
  1583.     ROM_LOAD( "316-0042.u88", 0x0020, 0x0020, 0xa1506b9d )    /* sequence PROM */
  1584. ROM_END
  1585.  
  1586.  
  1587.  
  1588. static void vicdual_decode(void)
  1589. {
  1590.     unsigned char *RAM = memory_region(REGION_CPU1);
  1591.  
  1592.  
  1593.     /* copy the ROMs to the mirror image */
  1594.     memcpy(&RAM[0x4000],&RAM[0x0000],0x4000);
  1595. }
  1596.  
  1597.  
  1598.  
  1599. static void init_nosamples(void)
  1600. {
  1601.     samples_interface.samplenames = 0;
  1602.  
  1603.     vicdual_decode();
  1604. }
  1605.  
  1606. static void init_depthch(void)
  1607. {
  1608.     install_port_read_handler(0, 0x08, 0x08, depthch_input_port_1_r);
  1609.  
  1610.     /* install sample trigger */
  1611.     install_port_write_handler(0, 0x04, 0x04, depthch_sh_port1_w);
  1612.  
  1613.     samples_interface.samplenames = depthch_sample_names;
  1614.  
  1615.     vicdual_decode();
  1616. }
  1617.  
  1618. static void init_samurai(void)
  1619. {
  1620.     /* install protection handlers */
  1621.     install_mem_write_handler(0, 0x7f00, 0x7f00, samurai_protection_w);
  1622.     install_port_read_handler(0, 0x01, 0x03, samurai_input_r);
  1623.  
  1624.     samples_interface.samplenames = 0;
  1625.  
  1626.     vicdual_decode();
  1627. }
  1628.  
  1629. static void init_carnival(void)
  1630. {
  1631.     /* install sample triggers */
  1632.     install_port_write_handler(0, 0x01, 0x01, carnival_sh_port1_w);
  1633.     install_port_write_handler(0, 0x02, 0x02, carnival_sh_port2_w);
  1634.  
  1635.     samples_interface.samplenames = carnival_sample_names;
  1636.  
  1637.     vicdual_decode();
  1638. }
  1639.  
  1640. static void init_invinco(void)
  1641. {
  1642.     /* install sample trigger */
  1643.     install_port_write_handler(0, 0x02, 0x02, invinco_sh_port2_w);
  1644.  
  1645.     samples_interface.samplenames = invinco_sample_names;
  1646.  
  1647.     vicdual_decode();
  1648. }
  1649.  
  1650. static void init_invho2(void)
  1651. {
  1652.     /* install sample trigger */
  1653.     install_port_write_handler(0, 0x02, 0x02, invinco_sh_port2_w);
  1654.  
  1655.     samples_interface.samplenames = invinco_sample_names;
  1656.  
  1657.     vicdual_decode();
  1658. }
  1659.  
  1660. static void init_invds(void)
  1661. {
  1662.     /* install sample trigger */
  1663.     install_port_write_handler(0, 0x01, 0x01, invinco_sh_port2_w);
  1664.  
  1665.     samples_interface.samplenames = invinco_sample_names;
  1666.  
  1667.     vicdual_decode();
  1668. }
  1669.  
  1670. static void init_pulsar(void)
  1671. {
  1672.     /* install sample triggers */
  1673.     install_port_write_handler(0, 0x01, 0x01, pulsar_sh_port1_w);
  1674.     install_port_write_handler(0, 0x02, 0x02, pulsar_sh_port2_w);
  1675.  
  1676.     samples_interface.samplenames = pulsar_sample_names;
  1677.  
  1678.     vicdual_decode();
  1679. }
  1680.  
  1681.  
  1682. GAME( 1977, depthch,  0,        2ports,   depthch,  depthch,   ROT0,   "Gremlin", "Depthcharge" )
  1683. GAMEX(1977, safari,   0,        safari,   safari,   nosamples, ROT0,   "Gremlin", "Safari", GAME_NO_SOUND )
  1684. GAMEX(1978, frogs,    0,        2ports,   frogs,    nosamples, ROT0,   "Gremlin", "Frogs", GAME_NO_SOUND )
  1685. GAMEX(1979, sspaceat, 0,        3ports,   sspaceat, nosamples, ROT270, "Sega", "Space Attack (upright)", GAME_NO_SOUND )
  1686. GAMEX(1979, sspacat2, sspaceat, 3ports,   sspaceat, nosamples, ROT270, "Sega", "Space Attack (upright, older)", GAME_NO_SOUND )
  1687. GAMEX(1979, sspacatc, sspaceat, 3ports,   sspaceat, nosamples, ROT270, "Sega", "Space Attack (cocktail)", GAME_NO_SOUND )
  1688. GAMEX(1979, headon,   0,        2ports,   headon,   nosamples, ROT0,   "Gremlin", "Head On (2 players)", GAME_NO_SOUND )
  1689. GAMEX(1979, headonb,  headon,   2ports,   headon,   nosamples, ROT0,   "Gremlin", "Head On (1 player)", GAME_NO_SOUND )
  1690. GAMEX(1979, headon2,  0,        3ports,   headon2,  nosamples, ROT0,   "Sega", "Head On 2", GAME_NO_SOUND )
  1691. GAME( 1979, invho2,   0,        4ports,   invho2,   invho2,    ROT270, "Sega", "Invinco / Head On 2" )
  1692. GAMEX(1980, samurai,  0,        4ports,   samurai,  samurai,   ROT270, "Sega", "Samurai (Sega)", GAME_NO_SOUND )
  1693. GAME( 1979, invinco,  0,        3ports,   invinco,  invinco,   ROT270, "Sega", "Invinco" )
  1694. GAME( 1979, invds,    0,        4ports,   invds,    invds,     ROT270, "Sega", "Invinco / Deep Scan" )
  1695. GAMEX(1980, tranqgun, 0,        4ports,   tranqgun, nosamples, ROT270, "Sega", "Tranquilizer Gun", GAME_NO_SOUND )
  1696. GAMEX(1980, spacetrk, 0,        4ports,   spacetrk, nosamples, ROT270, "Sega", "Space Trek (upright)", GAME_NO_SOUND )
  1697. GAMEX(1980, sptrekct, spacetrk, 4ports,   sptrekct, nosamples, ROT270, "Sega", "Space Trek (cocktail)", GAME_NO_SOUND )
  1698. GAME( 1980, carnival, 0,        carnival, carnival, carnival,  ROT270, "Sega", "Carnival (upright)" )
  1699. GAME( 1980, carnvckt, carnival, carnival, carnvckt, carnival,  ROT270, "Sega", "Carnival (cocktail)" )
  1700. GAMEX(1980, digger,   0,        3ports,   digger,   nosamples, ROT270, "Sega", "Digger", GAME_NO_SOUND )
  1701. GAME( 1981, pulsar,   0,        4ports,   pulsar,   pulsar,    ROT270, "Sega", "Pulsar" )
  1702. GAMEX(1979, heiankyo, 0,        4ports,   heiankyo, nosamples, ROT270, "Denki Onkyo", "Heiankyo Alien", GAME_NO_SOUND )
  1703.